#pragma once

class MapPath : private RefObj
{
	friend class PathRecyclePool;

public:
	MapPath(void);
	~MapPath(void);

	int Size() const;
	int operator[] (int idx) const;
	const vector3di& VertAt(int idx) const;
	int EndBrickIdx() const;
	int GetSegIdxOf (int brickIdx) const;

	void Clear();
	void PushFront(int brickIdx);
	void ConstructSegments (const StageMap& map);

private:
	std::deque<int>				_brickIdxQue;
	std::vector<vector3di>		_segVerts;
	dynamic_bitset				_usedBrickIdx;
};
